package service;

import org.springframework.stereotype.Service;
import pojo.*;

import java.util.List;
@Service
public interface RoomService {
    /**
     * 查看所有的住房消息
     */
    List<Room> queryRoom();
    /**
     * 添加住房消息
     */
    int addRoom(Room room);
    /**
     * 查看住客信息
     */
    List<Resident> queryResident();
    /**
     * 查看可订的房间为
     */
    List<Room> canOrder();
    /**
     * 将被预订的房间状态修改
     */
    int updateState(Room room);
    /**
     * 添加住客的信息
     */
    int addResident(Resident resident);
    /**
     * 修改房间信息
     */
    int updateRoom(Room room);
    /**
     * 查看已订的房间为
     */
    List<Room> notOrder();
    /**
     * 修改住客信息
     */
    int updateResident(Resident resident);
    /**
     * 将已订的房间状态更改
     */
    int updateStateOpen(Room room);
    /**
     * 将住客信息插入历史订单
     */
    int addHistoryResident(Resident resident);
    /**
     * 退房时获取该房间的租金
     */
    int receiveRentMoney(Room room);
    /**
     * 住客退房后将住客数据从住客表中删除
     */
    int deleteResident(Resident resident);
    /**
     * 获取每个房间的预订金总和
     */
    int receiveSubscription(Resident resident);
    /**
     * 查看住客信息表中是否有这个住客
     */
    List<Resident> selectResident(Resident resident);
    /**
     * 获取特定房间的住客信息
     */
    List<Resident> roomResident(Resident resident);
    /**
     * 查看历史订单
     */
    List<HistoryResident> allHistory();
    /**
     * 查看历史订单中房间的预订次数
     */
    List<RoomCount> selectCount();
    /**
     * 删除住房
     */
    int deleteRoom(Room room);
    /**
     * 按名字查询是否有该住客
     */
    List<Resident> findResident(Resident resident);
    /**
     * 查看该住客在哪个房号
     */
    String findRoomId(Resident resident);
    /**
     * 节日活动租金打折
     */
    void updateRentMoney();
    /**
     * 活动结束后恢复原价
     */
    void restoreRentMoney();
    /**
     * 统计一年中的总收益
     */
    Integer totalMoney(Year year);
    /**
     * 将收益情况写入收益表
     */
    int addIncomeMoney(Year year);
    /**
     * 查看收益表中有无该年的数据
     */
    Year findYear(Year year);
    /**
     * 修改收益表中的金钱
     */
    int updateIncomeMoney(Year year);


}
